package com.hzlj.position.job.common.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fz.common.base.core.JacksonTypeHandlerIgnoreNull;
import com.hzlj.position.job.common.dto.noticeJob.NoticeJobParamsDTO;
import lombok.Data;
import lombok.ToString;

import java.util.Date;

/**
 * 通知任务配置(NoticeJob)实体类
 *
 * @author makejava
 * @since 2024-09-09 11:52:37
 */
@Data
@ToString
@TableName(value = "notice_job", autoResultMap = true)
public class NoticeJob {
    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 机构code
     */
    @TableField(value = "jg_code")
    private String jgCode;
    /**
     * job处理器
     */
    @TableField(value = "handler")
    private String handler;
    /**
     * 参数，json-NoticeJobParamsDTODTO
     */
    @TableField(value = "params", typeHandler = JacksonTypeHandlerIgnoreNull.class)
    private NoticeJobParamsDTO params;
    /**
     * 发送的对象(工作人员)
     */
    @TableField(value = "roles")
    private String roles;
    /**
     * 是否在执行中
     */
    @TableField(value = "schedule_status")
    private Boolean scheduleStatus;
    /**
     * 调度表达式
     */
    @TableField(value = "schedule_cron")
    private String scheduleCron;
    /**
     * 下一个执行时间点
     */
    @TableField(value = "next_exe_time")
    private Date nextExeTime;
    /**
     * 最近执行时间
     */
    @TableField(value = "last_exe_time")
    private Date lastExeTime;
    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    private Date createTime;
}
